home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / xen / interface / elfnote.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  3.8 KB  |  154 lines

  1. /******************************************************************************
  2.  * elfnote.h
  3.  *
  4.  * Definitions used for the Xen ELF notes.
  5.  *
  6.  * Copyright (c) 2006, Ian Campbell, XenSource Ltd.
  7.  */
  8.  
  9. #ifndef __XEN_PUBLIC_ELFNOTE_H__
  10. #define __XEN_PUBLIC_ELFNOTE_H__
  11.  
  12. /*
  13.  * The notes should live in a SHT_NOTE segment and have "Xen" in the
  14.  * name field.
  15.  *
  16.  * Numeric types are either 4 or 8 bytes depending on the content of
  17.  * the desc field.
  18.  *
  19.  * LEGACY indicated the fields in the legacy __xen_guest string which
  20.  * this a note type replaces.
  21.  */
  22.  
  23. /*
  24.  * NAME=VALUE pair (string).
  25.  *
  26.  * LEGACY: FEATURES and PAE
  27.  */
  28. #define XEN_ELFNOTE_INFO           0
  29.  
  30. /*
  31.  * The virtual address of the entry point (numeric).
  32.  *
  33.  * LEGACY: VIRT_ENTRY
  34.  */
  35. #define XEN_ELFNOTE_ENTRY          1
  36.  
  37. /* The virtual address of the hypercall transfer page (numeric).
  38.  *
  39.  * LEGACY: HYPERCALL_PAGE. (n.b. legacy value is a physical page
  40.  * number not a virtual address)
  41.  */
  42. #define XEN_ELFNOTE_HYPERCALL_PAGE 2
  43.  
  44. /* The virtual address where the kernel image should be mapped (numeric).
  45.  *
  46.  * Defaults to 0.
  47.  *
  48.  * LEGACY: VIRT_BASE
  49.  */
  50. #define XEN_ELFNOTE_VIRT_BASE      3
  51.  
  52. /*
  53.  * The offset of the ELF paddr field from the acutal required
  54.  * psuedo-physical address (numeric).
  55.  *
  56.  * This is used to maintain backwards compatibility with older kernels
  57.  * which wrote __PAGE_OFFSET into that field. This field defaults to 0
  58.  * if not present.
  59.  *
  60.  * LEGACY: ELF_PADDR_OFFSET. (n.b. legacy default is VIRT_BASE)
  61.  */
  62. #define XEN_ELFNOTE_PADDR_OFFSET   4
  63.  
  64. /*
  65.  * The version of Xen that we work with (string).
  66.  *
  67.  * LEGACY: XEN_VER
  68.  */
  69. #define XEN_ELFNOTE_XEN_VERSION    5
  70.  
  71. /*
  72.  * The name of the guest operating system (string).
  73.  *
  74.  * LEGACY: GUEST_OS
  75.  */
  76. #define XEN_ELFNOTE_GUEST_OS       6
  77.  
  78. /*
  79.  * The version of the guest operating system (string).
  80.  *
  81.  * LEGACY: GUEST_VER
  82.  */
  83. #define XEN_ELFNOTE_GUEST_VERSION  7
  84.  
  85. /*
  86.  * The loader type (string).
  87.  *
  88.  * LEGACY: LOADER
  89.  */
  90. #define XEN_ELFNOTE_LOADER         8
  91.  
  92. /*
  93.  * The kernel supports PAE (x86/32 only, string = "yes" or "no").
  94.  *
  95.  * LEGACY: PAE (n.b. The legacy interface included a provision to
  96.  * indicate 'extended-cr3' support allowing L3 page tables to be
  97.  * placed above 4G. It is assumed that any kernel new enough to use
  98.  * these ELF notes will include this and therefore "yes" here is
  99.  * equivalent to "yes[entended-cr3]" in the __xen_guest interface.
  100.  */
  101. #define XEN_ELFNOTE_PAE_MODE       9
  102.  
  103. /*
  104.  * The features supported/required by this kernel (string).
  105.  *
  106.  * The string must consist of a list of feature names (as given in
  107.  * features.h, without the "XENFEAT_" prefix) separated by '|'
  108.  * characters. If a feature is required for the kernel to function
  109.  * then the feature name must be preceded by a '!' character.
  110.  *
  111.  * LEGACY: FEATURES
  112.  */
  113. #define XEN_ELFNOTE_FEATURES      10
  114.  
  115. /*
  116.  * The kernel requires the symbol table to be loaded (string = "yes" or "no")
  117.  * LEGACY: BSD_SYMTAB (n.b. The legacy treated the presence or absence
  118.  * of this string as a boolean flag rather than requiring "yes" or
  119.  * "no".
  120.  */
  121. #define XEN_ELFNOTE_BSD_SYMTAB    11
  122.  
  123. /*
  124.  * The lowest address the hypervisor hole can begin at (numeric).
  125.  *
  126.  * This must not be set higher than HYPERVISOR_VIRT_START. Its presence
  127.  * also indicates to the hypervisor that the kernel can deal with the
  128.  * hole starting at a higher address.
  129.  */
  130. #define XEN_ELFNOTE_HV_START_LOW  12
  131.  
  132. /*
  133.  * List of maddr_t-sized mask/value pairs describing how to recognize
  134.  * (non-present) L1 page table entries carrying valid MFNs (numeric).
  135.  */
  136. #define XEN_ELFNOTE_L1_MFN_VALID  13
  137.  
  138. /*
  139.  * Whether or not the guest supports cooperative suspend cancellation.
  140.  */
  141. #define XEN_ELFNOTE_SUSPEND_CANCEL 14
  142.  
  143. #endif /* __XEN_PUBLIC_ELFNOTE_H__ */
  144.  
  145. /*
  146.  * Local variables:
  147.  * mode: C
  148.  * c-set-style: "BSD"
  149.  * c-basic-offset: 4
  150.  * tab-width: 4
  151.  * indent-tabs-mode: nil
  152.  * End:
  153.  */
  154.